package Servicio;

import Model.Cliente;


public class ManejadorCliente extends ManejadorAbstracto {


    public ManejadorCliente () {
    }

    protected String consulta(){
        String aux= "select * from Clients C";
        switch (opcion){
            case 0: aux=aux+" Order by Apellido,Nombre";
                break;
            case 1: aux=aux+" where Id_cliente ="+valor; 
                break;
            case 2: aux=aux+" where "+valor;    
                break;
            case 3: aux=aux+" LEFT JOIN Pedidos P on C.Id_Cliente=P.Id_Cliente " +
                    "where P.Id_Cliente is Null ";    
                break;   
            case 4: aux="Select Apellido From Clients Order By Apellido asc";  
        }
        return aux;
    }
    
    protected Object nuevo(){
        Object aux=null;
       try {
           if (opcion<4){
           aux = new Cliente(resultSet.getString("Tipo"), 
                   resultSet.getString("Nro_Doc"), resultSet.getString("Apellido"),
                   resultSet.getString("Nombre"), resultSet.getString("fecha_Nac"),
                   resultSet.getString("tel_Fijo"), resultSet.getString("tel_Movil"),
                   resultSet.getString("Matricula"), resultSet.getString("Mail"),
                   resultSet.getString("Direccion"),resultSet.getString("Especialidad"),
                   resultSet.getInt("CP"), resultSet.getString("Localidad"),
                   resultSet.getString("Provincia"),resultSet.getString("Pais"),
                   resultSet.getString("Hobbie"));
           ((Cliente)aux).setIdCli(resultSet.getInt(1));
           }
           else
           {
               aux = resultSet.getString("Apellido");
           }
           
       } catch (Exception e) {e.printStackTrace(); }
       return aux;
    }
    
    protected String table(){
        return "Clientes(Id_Tipo_Doc,Nro_Doc,Apellido,Nombre," +
                "Matricula,ID_Especialidad,Mail,Direccion,CP,Id_Localidad,Id_Provincia,Id_Pais," +
                "Fecha_Nac,Tel_Fijo,Tel_Movil,Hobbie)";
    }
    
    protected String values(Object objeto){
        String aux;
        /*Ojo qe esto se repite cuando se actualiza*/
        Cliente cliente=(Cliente)objeto;
        int auxIdTipo = Facade.obtenerIdFijo(cliente.getTipoDocumento(), 2);
        int auxIdEspecialidad = Facade.obtenerIdExpandible(cliente.getEspecialidad(), 0);
        int auxIdLocalidad = Facade.obtenerIdExpandible(cliente.getLocalidad(), 1);
        int auxIdProvincia = Facade.obtenerIdExpandible(cliente.getProvincia(), 2);
        int auxIdPais = Facade.obtenerIdExpandible(cliente.getPais(), 3);


        
        aux="("+
                auxIdTipo+","+
                cliente.getNroDocumento()+","+
                cliente.getApellidoCli()+","+
                cliente.getNombreCli()+","+
                cliente.getMatricula()+","+
                auxIdEspecialidad+","+
                cliente.getMail()+","+
                cliente.getDireccion()+","+
                cliente.getCP()+","+
                auxIdLocalidad+","+
                auxIdProvincia+","+
                auxIdPais+","+
                cliente.getFechaNac()+","+
                cliente.getTelFijo()+","+
                cliente.getTelMovil()+",'"+
                cliente.getHobbie()+"')";
                
                
        return aux;
    }
    
    protected String table_u(){
        return "Clientes";
    }
        
    protected String campos_u(Object objeto){
       String aux;
       Cliente cliente=(Cliente)objeto;
        int auxIdTipo = Facade.obtenerIdFijo(cliente.getTipoDocumento(), 2);
        int auxIdEspecialidad = Facade.obtenerIdExpandible(cliente.getEspecialidad(), 0);
        int auxIdLocalidad = Facade.obtenerIdExpandible(cliente.getLocalidad(), 1);
        int auxIdProvincia = Facade.obtenerIdExpandible(cliente.getProvincia(), 2);
        int auxIdPais = Facade.obtenerIdExpandible(cliente.getPais(), 3);
        
        
       aux="Id_Tipo_Doc = "+auxIdTipo+","+
           "Nro_doc = "+cliente.getNroDocumento()+","+
           "Apellido = "+cliente.getApellidoCli()+","+
           "Nombre = "+cliente.getNombreCli()+","+
           "Matricula = "+cliente.getMatricula()+","+
           "id_Especialidad = "+auxIdEspecialidad+","+
           "Mail = "+cliente.getMail()+","+
           "Direccion = "+cliente.getDireccion()+","+
           "CP = "+cliente.getCP()+","+
           "Id_Localidad = "+auxIdLocalidad+","+
           "Id_Provincia = "+auxIdProvincia+","+
           "Id_Pais = "+auxIdPais+","+
           "Fecha_Nac = "+cliente.getFechaNac()+","+
           "tel_Fijo = "+cliente.getTelFijo()+","+
           "tel_Movil = "+cliente.getTelMovil()+","+
           "Hobbie = '"+cliente.getHobbie()+"' ";
        

        return aux;
    }
 
    protected String ides_u(Object objeto){
        String aux;
        aux=" id_cliente = "+((Cliente)objeto).getIdCli();
        return aux;
    }
    
    protected String table_d(){
        return "null";
    }
        
    protected String campos_d(Object objeto){
        return "null";
    }
}

